{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Nested Cross-Validation"
      ],
      "metadata": {
        "nteract": {
          "transient": {
            "deleting": false
          }
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import pandas as pd\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# fetch yahoo data\n",
        "import yfinance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:30.576Z",
          "iopub.execute_input": "2020-08-21T01:30:30.583Z",
          "iopub.status.idle": "2020-08-21T01:30:31.640Z",
          "shell.execute_reply": "2020-08-21T01:30:31.668Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2014-01-01'\n",
        "end = '2018-08-27'\n",
        "\n",
        "# Read data \n",
        "dataset = yf.download(symbol,start,end)\n",
        "\n",
        "# Only keep close columns \n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 completed\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Adj Close</th>\n      <th>Close</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Open</th>\n      <th>Volume</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2014-01-02</th>\n      <td>3.95</td>\n      <td>3.95</td>\n      <td>3.98</td>\n      <td>3.84</td>\n      <td>3.85</td>\n      <td>20548400</td>\n    </tr>\n    <tr>\n      <th>2014-01-03</th>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>3.88</td>\n      <td>3.98</td>\n      <td>22887200</td>\n    </tr>\n    <tr>\n      <th>2014-01-06</th>\n      <td>4.13</td>\n      <td>4.13</td>\n      <td>4.18</td>\n      <td>3.99</td>\n      <td>4.01</td>\n      <td>42398300</td>\n    </tr>\n    <tr>\n      <th>2014-01-07</th>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>4.25</td>\n      <td>4.11</td>\n      <td>4.19</td>\n      <td>42932100</td>\n    </tr>\n    <tr>\n      <th>2014-01-08</th>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>4.26</td>\n      <td>4.14</td>\n      <td>4.23</td>\n      <td>30678700</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
            "text/plain": "            Adj Close  Close  High   Low  Open    Volume\nDate                                                    \n2014-01-02       3.95   3.95  3.98  3.84  3.85  20548400\n2014-01-03       4.00   4.00  4.00  3.88  3.98  22887200\n2014-01-06       4.13   4.13  4.18  3.99  4.01  42398300\n2014-01-07       4.18   4.18  4.25  4.11  4.19  42932100\n2014-01-08       4.18   4.18  4.26  4.14  4.23  30678700"
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:31.650Z",
          "iopub.execute_input": "2020-08-21T01:30:31.658Z",
          "iopub.status.idle": "2020-08-21T01:30:33.020Z",
          "shell.execute_reply": "2020-08-21T01:30:33.153Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset['Increase_Decrease'] = np.where(dataset['Volume'].shift(-1) > dataset['Volume'],1,0)\n",
        "dataset['Buy_Sell_on_Open'] = np.where(dataset['Open'].shift(-1) > dataset['Open'],1,0)\n",
        "dataset['Buy_Sell'] = np.where(dataset['Adj Close'].shift(-1) > dataset['Adj Close'],1,0)\n",
        "dataset['Returns'] = dataset['Adj Close'].pct_change()\n",
        "dataset = dataset.dropna()"
      ],
      "outputs": [],
      "execution_count": 3,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.032Z",
          "iopub.execute_input": "2020-08-21T01:30:33.040Z",
          "iopub.status.idle": "2020-08-21T01:30:33.052Z",
          "shell.execute_reply": "2020-08-21T01:30:33.158Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset.tail()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 4,
          "data": {
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Adj Close</th>\n      <th>Close</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Open</th>\n      <th>Volume</th>\n      <th>Increase_Decrease</th>\n      <th>Buy_Sell_on_Open</th>\n      <th>Buy_Sell</th>\n      <th>Returns</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2018-08-20</th>\n      <td>19.980000</td>\n      <td>19.980000</td>\n      <td>20.08</td>\n      <td>19.350000</td>\n      <td>19.790001</td>\n      <td>62983200</td>\n      <td>0</td>\n      <td>1</td>\n      <td>1</td>\n      <td>0.010622</td>\n    </tr>\n    <tr>\n      <th>2018-08-21</th>\n      <td>20.400000</td>\n      <td>20.400000</td>\n      <td>20.42</td>\n      <td>19.860001</td>\n      <td>19.980000</td>\n      <td>55629000</td>\n      <td>1</td>\n      <td>1</td>\n      <td>1</td>\n      <td>0.021021</td>\n    </tr>\n    <tr>\n      <th>2018-08-22</th>\n      <td>20.900000</td>\n      <td>20.900000</td>\n      <td>20.92</td>\n      <td>20.209999</td>\n      <td>20.280001</td>\n      <td>62002700</td>\n      <td>1</td>\n      <td>1</td>\n      <td>1</td>\n      <td>0.024510</td>\n    </tr>\n    <tr>\n      <th>2018-08-23</th>\n      <td>22.290001</td>\n      <td>22.290001</td>\n      <td>22.32</td>\n      <td>21.139999</td>\n      <td>21.190001</td>\n      <td>113444100</td>\n      <td>1</td>\n      <td>1</td>\n      <td>1</td>\n      <td>0.066507</td>\n    </tr>\n    <tr>\n      <th>2018-08-24</th>\n      <td>23.980000</td>\n      <td>23.980000</td>\n      <td>24.00</td>\n      <td>22.670000</td>\n      <td>22.910000</td>\n      <td>164328200</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0.075819</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
            "text/plain": "            Adj Close      Close   High        Low       Open     Volume  \\\nDate                                                                       \n2018-08-20  19.980000  19.980000  20.08  19.350000  19.790001   62983200   \n2018-08-21  20.400000  20.400000  20.42  19.860001  19.980000   55629000   \n2018-08-22  20.900000  20.900000  20.92  20.209999  20.280001   62002700   \n2018-08-23  22.290001  22.290001  22.32  21.139999  21.190001  113444100   \n2018-08-24  23.980000  23.980000  24.00  22.670000  22.910000  164328200   \n\n            Increase_Decrease  Buy_Sell_on_Open  Buy_Sell   Returns  \nDate                                                                 \n2018-08-20                  0                 1         1  0.010622  \n2018-08-21                  1                 1         1  0.021021  \n2018-08-22                  1                 1         1  0.024510  \n2018-08-23                  1                 1         1  0.066507  \n2018-08-24                  0                 0         0  0.075819  "
          },
          "metadata": {}
        }
      ],
      "execution_count": 4,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.065Z",
          "iopub.execute_input": "2020-08-21T01:30:33.074Z",
          "iopub.status.idle": "2020-08-21T01:30:33.095Z",
          "shell.execute_reply": "2020-08-21T01:30:33.922Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.svm import SVC\n",
        "from sklearn.model_selection import GridSearchCV, cross_val_score, KFold"
      ],
      "outputs": [],
      "execution_count": 5,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.110Z",
          "iopub.execute_input": "2020-08-21T01:30:33.117Z",
          "iopub.status.idle": "2020-08-21T01:30:33.760Z",
          "shell.execute_reply": "2020-08-21T01:30:33.926Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "NUM_TRIALS = 30\n",
        "X = dataset.drop(['Buy_Sell'], axis=1)\n",
        "Y = dataset['Buy_Sell']"
      ],
      "outputs": [],
      "execution_count": 6,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.772Z",
          "iopub.execute_input": "2020-08-21T01:30:33.780Z",
          "iopub.status.idle": "2020-08-21T01:30:33.793Z",
          "shell.execute_reply": "2020-08-21T01:30:33.929Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "p_grid = {\"C\": [1, 10, 100],\n",
        "          \"gamma\": [.01, .1]}\n"
      ],
      "outputs": [],
      "execution_count": 7,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.807Z",
          "iopub.execute_input": "2020-08-21T01:30:33.819Z",
          "iopub.status.idle": "2020-08-21T01:30:33.835Z",
          "shell.execute_reply": "2020-08-21T01:30:33.932Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "svm = SVC(kernel=\"rbf\")"
      ],
      "outputs": [],
      "execution_count": 8,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.846Z",
          "iopub.execute_input": "2020-08-21T01:30:33.852Z",
          "iopub.status.idle": "2020-08-21T01:30:33.864Z",
          "shell.execute_reply": "2020-08-21T01:30:33.935Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "non_nested_scores = np.zeros(NUM_TRIALS)\n",
        "nested_scores = np.zeros(NUM_TRIALS)\n"
      ],
      "outputs": [],
      "execution_count": 9,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.876Z",
          "iopub.execute_input": "2020-08-21T01:30:33.883Z",
          "iopub.status.idle": "2020-08-21T01:30:33.893Z",
          "shell.execute_reply": "2020-08-21T01:35:10.300Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "for i in range(NUM_TRIALS):\n",
        "\n",
        "    # Choose cross-validation techniques for the inner and outer loops,\n",
        "    # independently of the dataset.\n",
        "    # E.g \"GroupKFold\", \"LeaveOneOut\", \"LeaveOneGroupOut\", etc.\n",
        "    inner_cv = KFold(n_splits=4, shuffle=True, random_state=i)\n",
        "    outer_cv = KFold(n_splits=4, shuffle=True, random_state=i)\n",
        "\n",
        "    # Non_nested parameter search and scoring\n",
        "    clf = GridSearchCV(estimator=svm, param_grid=p_grid, cv=inner_cv)\n",
        "    clf.fit(X, Y)\n",
        "    non_nested_scores[i] = clf.best_score_\n",
        "\n",
        "    # Nested CV with parameter optimization\n",
        "    nested_score = cross_val_score(clf, X=X, y=Y, cv=outer_cv)\n",
        "    nested_scores[i] = nested_score.mean()\n",
        "\n",
        "score_difference = non_nested_scores - nested_scores"
      ],
      "outputs": [],
      "execution_count": 10,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:30:33.902Z",
          "iopub.execute_input": "2020-08-21T01:30:33.909Z",
          "iopub.status.idle": "2020-08-21T01:35:09.664Z",
          "shell.execute_reply": "2020-08-21T01:35:10.304Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Average difference of {:6f} with std. dev. of {:6f}.\" .format(score_difference.mean(), score_difference.std()))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Average difference of 0.000228 with std. dev. of 0.000762.\n"
          ]
        }
      ],
      "execution_count": 11,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:35:09.683Z",
          "iopub.execute_input": "2020-08-21T01:35:09.695Z",
          "iopub.status.idle": "2020-08-21T01:35:09.718Z",
          "shell.execute_reply": "2020-08-21T01:35:10.309Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure()\n",
        "plt.subplot(211)\n",
        "non_nested_scores_line, = plt.plot(non_nested_scores, color='r')\n",
        "nested_line, = plt.plot(nested_scores, color='b')\n",
        "plt.ylabel(\"score\", fontsize=\"14\")\n",
        "plt.legend([non_nested_scores_line, nested_line],\n",
        "           [\"Non-Nested CV\", \"Nested CV\"],\n",
        "           bbox_to_anchor=(0, .4, .5, 0))\n",
        "plt.title(\"Non-Nested and Nested Cross Validation on Stock Dataset\",\n",
        "          x=.5, y=1.1, fontsize=\"15\")\n",
        "plt.subplot(212)\n",
        "difference_plot = plt.bar(range(NUM_TRIALS), score_difference)\n",
        "plt.xlabel(\"Individual Trial #\")\n",
        "plt.legend([difference_plot],\n",
        "           [\"Non-Nested CV - Nested CV Score\"],\n",
        "           bbox_to_anchor=(0, 1, .8, 0))\n",
        "plt.ylabel(\"score difference\", fontsize=\"14\")\n",
        "\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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rfo1LTvBLBZLuScQyvFh4FYgGvhCVXP3V70UWOpD+CaAe9M/yXE7joh0AZqp6o8eYdsAKiK/ichyEXmooEREZJyIxIhIzL59+wry44O4lpOFsMphhJJDdiHNofjEqrSN2EpYZWsbZrFYfCcQSznmAfWBeqo61u3Wu3jfHMATbxrp+IaZIhICTAHu9+IvDOgDXOv8vVxEvK6tVNX3VLWbqnarX79oC8dgICLcf/+JbE6ePJlJkyYFJO5JkyZRtWpV9u7de9ytevXqxYrro48+YufOnX6FSUxMpEOHDl7vJSQkMHToUM466yzatWvHVVddxdatW6lbty4HDx7M43f48OF8+eWXAIhAREg2x3IKLsbxB04nskGKX7JaLBZLQBZ+qWqOqh7wcEtU1b0FhXEjCWjm9rsp4F7z1gA6ANEikohZU/m9iHRzws5V1WTniKyfMZsPlEsqV67M119/TXKyL6PR/lOvXj1efvnlEsdTHOVYEJmZmQwbNozx48ezceNG1q5dy/jx40lLS2PQoEF8++23x/0ePHiQBQsWcMkllxx3iwjPIdvlvVd4ZO9hthxrRuRZvp/7aLFYLBAg5VhClgGtRaSFiFQCRgHf595U1YOqWk9Vm6tqc2AxcKljrfob0ElEqjrGOf2A+PxJlA/CwsIYN24cU6ZMyXdv69atDBw4kE6dOjFw4EC2bTMn248ZM4a77rqLXr160bJlS2bOnFlg/GPHjmXGjBns359/zd+nn35Kjx49iIqK4rbbbiMnJ4ecnBzGjBlDhw4d6NixI1OmTGHmzJnExMRw7bXXEhUVRUZGBrGxsfTr149zzjmHwYMHs2uX2e80NjaWzp0707NnT6ZOnepVps8//5yePXvyj3/847jbgAED6NChA6NHj2b69OnH3b/55huGDBlC1aon9kitXFnJIZT03Wn54l7321aUECK7FjIpabFYLF4IhLVqiVDVYyJyB0bRhQIfquoaEXkKiFHV7wsJe0BEXsEoWAV+VtWfSizUPfdAXFyJo8lDVBS8+mqR3iZMmECnTp146KG806d33HEHN9xwAzfeeCMffvghd9111/Fe1a5du1iwYAHr1q3j0ksvZeTIkV7jrl69OmPHjuW1117jySefPO6+du1aZsyYwcKFCwkPD+f222/ns88+o3379uzYsYPVq1cDkJqaSu3atXnzzTeZPHky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\n",
            "text/plain": "<Figure size 432x288 with 2 Axes>"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 12,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-08-21T01:35:09.731Z",
          "iopub.execute_input": "2020-08-21T01:35:09.740Z",
          "iopub.status.idle": "2020-08-21T01:35:10.168Z",
          "shell.execute_reply": "2020-08-21T01:35:10.314Z"
        }
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "file_extension": ".py",
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "mimetype": "text/x-python",
      "name": "python",
      "pygments_lexer": "ipython3",
      "nbconvert_exporter": "python",
      "version": "3.5.5"
    },
    "kernelspec": {
      "argv": [
        "C:\\Users\\Tin Hang\\Anaconda3\\envs\\py35\\python.exe",
        "-m",
        "ipykernel_launcher",
        "-f",
        "{connection_file}"
      ],
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "nteract": {
      "version": "0.24.1"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}